1. Field of the Invention
This invention relates to communication between a host server and a mobile information device. More particularly, this invention relates to improvements in the provision of applications and resources to a mobile information device by a host server.
2. Description of the Related Art
The meanings of acronyms and certain terminology used herein are given in Table 1 and Table 2. Sun, Sun Microsystems, the Sun logo, Java, J2EE, J2ME, and J2SE are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States of America and other countries. All other company and product names may be trademarks of their respective companies.
TABLE 1APIApplication programming interfaceCISCcomplex instruction set computerCLDCconnected, limited device configurationDOMdocument object modelGSMglobal system for mobile communicationHTTPhypertext transfer protocolIDEIntegrated development environmentJ2EEJava 2 Enterprise EditionJ2MEJava 2 Micro EditionJ2SEJava 2 Standard EditionJADJava application descriptorJAMJava Application ManagerJARJava archiveJAVACJava compilerJAXPJava API for XML ProcessingMIDMLmobile information device markup languageMIDPmobile information device profileOTAover the air user initiated provisioning for MIDPPNGportable network graphicsRISCreduced instruction set computerRTLrun time librarySDKsoftware development kitURLuniform resource locator
TABLE 2CLASSPATHA fundamental definition in Java environments,informing the Java virtual machinewhere to search for Java classes.Java ServiceAn end-user service that is made up of atleast one client-side component writtenin Java. Additional server-side components,servers, software or otherwise canalso be part of the service.MIDletA MIDP compliant applicationMIDML ApplicationA set of MIDML files structured as an applicationto be generated as a MIDletMIDP DeviceA device running CLDC with MIDPMIDSPMIDML Java code embedding extensionsuse caseA computer software product methodologyused in system analysis to identify,clarify, and organize system requirements.WidgetA small program that is written in orderto implement the appearance and behaviorof an element of a graphical user interface.JAVAXJavax is a common package name for standardJava extensions.
The use of mobile and portable wireless devices has expanded dramatically in recent years. Many such devices having varying functions, internal resources, and capabilities now exist, including, but not limited to mobile telephones, personal digital assistants, medical and laboratory instrumentation, smart cards, and set-top boxes. All such devices are collectively referred to herein as mobile information devices. They tend to be special purpose, limited-function devices, rather than the general-purpose computing machines that have been previously known. Many of these devices are connected to the Internet, and are used for a variety of applications, such as banking and financial transactions, ticketing applications, wireless collaboration, and interactive games. Furthermore, in modern networks, such as GSM networks, an increasing variety of mobile information devices supports remote management and configuration. For example, using existing over-the-air protocols, it is possible to download data to memory remotely, and to reconfigure mobile information devices, such as mobile telephones.
A specification known as the Mobile Information Device Profile defines a set of Java application programming interfaces that provide an application run time environment for mobile information devices, such as mobile telephones. MIDP is defined in Mobile Information Device Profile (JSR-37), JCP Specification, Java 2 Platform, Micro Edition, 1.0a (Sun Microsystems Inc., Palo Alto, Calif., December 2000), and is also referred to herein as “MIDP-1.0”.
MIDP builds on the Connected Limited Device Configuration (CLDC) of the Java 2 Platform, Micro Edition (J2ME) (available from Sun Microsystems Inc., Palo Alto, Calif.). CLDC and J2ME specifically address the devices used in the vast market, which covers mobile information devices ranging from small devices, such as smart cards or pagers, to powerful set-top boxes. CLDC technology includes a virtual machine (KVM), which is a small Java virtual machine that is adapted to the constraints of small mobile information devices. CLDC is suitable for devices with 16/32-bit RISC/CISC microprocessors/controllers, having as little as 160 KB of total memory available, as little as 128 KB of which can be reserved for the storage of the virtual machine and its libraries. MIDP applications that use the MIDP and CLDC APIs are known as MIDlets.
Other documents relevant to this invention include the following publications, available from Sun Microsystems, Inc.: Java 2 Platform Micro Edition, Wireless Toolkit; Over The Air User Initiated Provisioning Recommended Practice Addendum to the Mobile Information Device Profile; Connected Limited Device Configuration Specification; Java Servlet Specification; and JavaServer Pages Specification. 
Notwithstanding the existing technology of MIDP and CLDC, there remains a need for content and service providers to more easily create, modify and update MIDlet applications that can be requested by mobile information device for download. An unmet need also exists for content providers to easily port their content to the MIDP environment. Existing tools allow programmers to use integrated development environments and compilers to statically generate applications. However, these applications then need to be manually moved to a location accessible by a MIDP platform.